package main

import (
	"flag"
	"fmt"
	"log"
	"net/http"
	"os"
)

var name string
var age, six int8 = 12, 1
func init()  {
	// &name 存储改命令参数值的地址，
	// name 名称
	// everyone 默认值
	// 描述
	flag.StringVar(&name, "name", "everyone", "the greeting object")

	flag.Usage = func() {
		fmt.Fprintf(os.Stderr, "Usage of %s:\n", "question")
		flag.PrintDefaults()
	}
}

func viewHandler(writer http.ResponseWriter, request *http.Request) {

	message := []byte("Hello, World!")

	_, err := writer.Write(message)

	if err != nil {
		log.Fatal(err)
	}
}

func main() {
	http.HandleFunc("/hello", viewHandler)
	err := http.ListenAndServe("localhost:8800", nil)
	log.Fatal(err)

	//flag.Parse() // 会在flag 中对name变量的声明，和对flag方法对调用之后进行Parse
	//hello(name) // main.go 和print_lib.go 在同一个目录下的源码文件都需要被声明为属于同一个代码包
}

